<?php //
include_once("Conexion.php");

//Declaracion
class M_Abastecimiento {
    
    private $id_Movimiento;
    private $id_Ingrediente;
    private $id_Proveedor;
    private $id_Medida;    
    private $fecha;
    private $cantidad;
    private $tipo_movimiento;
    private $precio_compra;
    private $creacion;
    private $creadopor;
    private $actualizado;
    private $actualizadopor;    
    private $eliminado;
    
    
    function searchAbastecimiento_All() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_movimientos";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    function searchAbastecimientoDetallado_All() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = "SELECT mov.fecha, per.nombres as proveedor, ing.nombre as ingrediente, mov.movimiento_tipo, mov.cantidad, med.nombre, mov.precio_compra
FROM tbl_movimientos as mov
JOIN tbl_persona as per ON per.id_persona = mov.id_proveedor
JOIN tbl_ingrediente as ing ON ing.id_ingrediente = mov.id_ingrediente
JOIN tbl_unidad_medida as med ON med.id_unidad_medida = mov.id_medida";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    function searchMedidas_All() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = "SELECT * FROM tbl_unidad_medida where eliminado = false";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    
    function insertAbastecimiento() {
       
      
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
          //  pg_query($cn,"BEGIN");
            //Elaboramos la sentencia
            $sql = " insert into tbl_movimientos(id_ingrediente, fecha, cantidad, id_proveedor, movimiento_tipo, precio_compra) values ($this->id_Ingrediente, now(), $this->cantidad, $this->id_Proveedor, 'Entrada', $this->precio_compra)";
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
              //  pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
               // pg_query($cn,"COMMIT");
                
                $sql2 = "UPDATE tbl_stock SET stock= (stock + $this->cantidad) WHERE id_ingrediente = $this->id_Ingrediente;";
                $result2 = pg_query($cn,$sql2);
                if($result2){
                    $rpta = true;
                }
                else{
                    $rpta = false;
                }                
            }
            //Cerramos la conexion
            pg_close($cn);
        
        return $rpta;
    }
    
    
    
    
    
    
    
    //Metodo utilizado para obtener todos los Roles
            
    function getId_Movimiento() {
        return $this->id_Movimiento;
    }
    function getId_Ingrediente() {
        return $this->id_Ingrediente;
    }
    function getId_Proveedor() {
        return $this->id_Proveedor;
    }
    function getId_Medida() {
        return $this->id_Medida;
    }
    function getFecha() {
        return $this->fecha;
    }
    function getId_Cantidad() {
        return $this->cantidad;
    }
    function getPrecioCompra() {
        return $this->precio_compra;
    }
    function getTipoMovimiento() {
        return $this->tipo_movimiento;
    }
                

    function setId_Movimiento($var) {
        $this->id_Movimiento = $var;
    }
    function setId_Ingrediente($var) {
        $this->id_Ingrediente = $var;
    }
    function setId_Proveedor($var) {
        $this->id_Proveedor = $var;
    }
    function setId_Medida($var) {
        $this->id_Medida = $var;
    }
    function setFecha($var) {
        $this->fecha = $var;
    }
    function setCantidad($var) {
        $this->cantidad = $var;
    }
    function setPrecioCompra($var) {
        $this->precio_compra = $var;
    }
    function setTipoMovimiento($var) {
        $this->tipo_movimiento = $var;
    }

    
    
    function searchProveedores() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_persona where id_tipo_persona = 10";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    function setId_Pagina($id_pagina) {
        $this->id_pagina = $id_pagina;
    }
    
}
?>